summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/mii/types/core_data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/mii/types/core_data.cpp')
-rw-r--r--src/core/hle/service/mii/types/core_data.cpp272
1 files changed, 134 insertions, 138 deletions
diff --git a/src/core/hle/service/mii/types/core_data.cpp b/src/core/hle/service/mii/types/core_data.cpp
index de82481b0..659288b51 100644
--- a/src/core/hle/service/mii/types/core_data.cpp
+++ b/src/core/hle/service/mii/types/core_data.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "common/assert.h"
#include "core/hle/service/mii/mii_util.h"
#include "core/hle/service/mii/types/core_data.h"
#include "core/hle/service/mii/types/raw_data.h"
@@ -14,17 +15,9 @@ void CoreData::SetDefault() {
void CoreData::BuildRandom(Age age, Gender gender, Race race) {
if (gender == Gender::All) {
- gender = MiiUtil::GetRandomValue<Gender>(Gender::Maximum);
+ gender = MiiUtil::GetRandomValue(Gender::Max);
}
- data.gender.Assign(gender);
- data.favorite_color.Assign(MiiUtil::GetRandomValue<u8>(11));
- data.region_move.Assign(0);
- data.font_region.Assign(FontRegion::Standard);
- data.type.Assign(0);
- data.height.Assign(64);
- data.build.Assign(64);
-
if (age == Age::All) {
const auto random{MiiUtil::GetRandomValue<int>(10)};
if (random >= 8) {
@@ -47,6 +40,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
}
}
+ SetGender(gender);
+ SetFavoriteColor(MiiUtil::GetRandomValue(FavoriteColor::Max));
+ SetRegionMove(0);
+ SetFontRegion(FontRegion::Standard);
+ SetType(0);
+ SetHeight(64);
+ SetBuild(64);
+
u32 axis_y{};
if (gender == Gender::Female && age == Age::Young) {
axis_y = MiiUtil::GetRandomValue<u32>(3);
@@ -85,10 +86,10 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
data.hair_type.Assign(
hair_type_info.values[MiiUtil::GetRandomValue<std::size_t>(hair_type_info.values_count)]);
- data.hair_color.Assign(RawData::GetHairColorFromVer3(
+ SetHairColor(RawData::GetHairColorFromVer3(
hair_color_info
.values[MiiUtil::GetRandomValue<std::size_t>(hair_color_info.values_count)]));
- data.hair_flip.Assign(MiiUtil::GetRandomValue<HairFlip>(HairFlip::Maximum));
+ SetHairFlip(MiiUtil::GetRandomValue(HairFlip::Max));
data.eye_type.Assign(
eye_type_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_type_info.values_count)]);
@@ -98,13 +99,13 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
const auto eye_rotate_offset{32 - RawData::EyeRotateLookup[eye_rotate_1] + eye_rotate_2};
const auto eye_rotate{32 - RawData::EyeRotateLookup[data.eye_type]};
- data.eye_color.Assign(RawData::GetEyeColorFromVer3(
+ SetEyeColor(RawData::GetEyeColorFromVer3(
eye_color_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_color_info.values_count)]));
- data.eye_scale.Assign(4);
- data.eye_aspect.Assign(3);
- data.eye_rotate.Assign(eye_rotate_offset - eye_rotate);
- data.eye_x.Assign(2);
- data.eye_y.Assign(axis_y + 12);
+ SetEyeScale(4);
+ SetEyeAspect(3);
+ SetEyeRotate(static_cast<u8>(eye_rotate_offset - eye_rotate));
+ SetEyeX(2);
+ SetEyeY(static_cast<u8>(axis_y + 12));
data.eyebrow_type.Assign(
eyebrow_type_info
@@ -116,57 +117,53 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
const auto eyebrow_rotate{
32 - RawData::EyebrowRotateLookup[static_cast<std::size_t>(data.eyebrow_type.Value())]};
- data.eyebrow_color.Assign(data.hair_color);
- data.eyebrow_scale.Assign(4);
- data.eyebrow_aspect.Assign(3);
- data.eyebrow_rotate.Assign(eyebrow_rotate_offset - eyebrow_rotate);
- data.eyebrow_x.Assign(2);
- data.eyebrow_y.Assign(axis_y + eyebrow_y);
-
- const auto nose_scale{gender == Gender::Female ? 3 : 4};
+ SetEyebrowColor(GetHairColor());
+ SetEyebrowScale(4);
+ SetEyebrowAspect(3);
+ SetEyebrowRotate(static_cast<u8>(eyebrow_rotate_offset - eyebrow_rotate));
+ SetEyebrowX(2);
+ SetEyebrowY(static_cast<u8>(axis_y + eyebrow_y));
data.nose_type.Assign(
nose_type_info.values[MiiUtil::GetRandomValue<std::size_t>(nose_type_info.values_count)]);
- data.nose_scale.Assign(nose_scale);
- data.nose_y.Assign(axis_y + 9);
+ SetNoseScale(gender == Gender::Female ? 3 : 4);
+ SetNoseY(static_cast<u8>(axis_y + 9));
const auto mouth_color{gender == Gender::Female ? MiiUtil::GetRandomValue<int>(4) : 0};
data.mouth_type.Assign(
mouth_type_info.values[MiiUtil::GetRandomValue<std::size_t>(mouth_type_info.values_count)]);
- data.mouth_color.Assign(RawData::GetMouthColorFromVer3(mouth_color));
- data.mouth_scale.Assign(4);
- data.mouth_aspect.Assign(3);
- data.mouth_y.Assign(axis_y + 13);
+ SetMouthColor(RawData::GetMouthColorFromVer3(mouth_color));
+ SetMouthScale(4);
+ SetMouthAspect(3);
+ SetMouthY(static_cast<u8>(axis_y + 13));
- data.beard_color.Assign(data.hair_color);
- data.mustache_scale.Assign(4);
+ SetBeardColor(GetHairColor());
+ SetMustacheScale(4);
if (gender == Gender::Male && age != Age::Young && MiiUtil::GetRandomValue<int>(10) < 2) {
- const auto mustache_and_beard_flag{
- MiiUtil::GetRandomValue<BeardAndMustacheFlag>(BeardAndMustacheFlag::All)};
+ const auto mustache_and_beard_flag{MiiUtil::GetRandomValue(BeardAndMustacheFlag::All)};
auto beard_type{BeardType::None};
auto mustache_type{MustacheType::None};
if ((mustache_and_beard_flag & BeardAndMustacheFlag::Beard) ==
BeardAndMustacheFlag::Beard) {
- beard_type = MiiUtil::GetRandomValue<BeardType>(BeardType::Beard1, BeardType::Beard5);
+ beard_type = MiiUtil::GetRandomValue(BeardType::Min, BeardType::Max);
}
if ((mustache_and_beard_flag & BeardAndMustacheFlag::Mustache) ==
BeardAndMustacheFlag::Mustache) {
- mustache_type = MiiUtil::GetRandomValue<MustacheType>(MustacheType::Mustache1,
- MustacheType::Mustache5);
+ mustache_type = MiiUtil::GetRandomValue(MustacheType::Min, MustacheType::Max);
}
- data.mustache_type.Assign(mustache_type);
- data.beard_type.Assign(beard_type);
- data.mustache_y.Assign(10);
+ SetMustacheType(mustache_type);
+ SetBeardType(beard_type);
+ SetMustacheY(10);
} else {
- data.mustache_type.Assign(MustacheType::None);
- data.beard_type.Assign(BeardType::None);
- data.mustache_y.Assign(axis_y + 10);
+ SetMustacheType(MustacheType::None);
+ SetBeardType(BeardType::None);
+ SetMustacheY(static_cast<u8>(axis_y + 10));
}
const auto glasses_type_start{MiiUtil::GetRandomValue<std::size_t>(100)};
@@ -178,15 +175,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
}
}
- data.glasses_type.Assign(glasses_type);
- data.glasses_color.Assign(RawData::GetGlassColorFromVer3(0));
- data.glasses_scale.Assign(4);
- data.glasses_y.Assign(axis_y + 10);
+ SetGlassType(static_cast<GlassType>(glasses_type));
+ SetGlassColor(RawData::GetGlassColorFromVer3(0));
+ SetGlassScale(4);
- data.mole_type.Assign(0);
- data.mole_scale.Assign(4);
- data.mole_x.Assign(2);
- data.mole_y.Assign(20);
+ SetMoleType(MoleType::None);
+ SetMoleScale(4);
+ SetMoleX(2);
+ SetMoleY(20);
}
u32 CoreData::IsValid() const {
@@ -195,15 +191,15 @@ u32 CoreData::IsValid() const {
}
void CoreData::SetFontRegion(FontRegion value) {
- data.font_region.Assign(value);
+ data.font_region.Assign(static_cast<u32>(value));
}
-void CoreData::SetFavoriteColor(u8 value) {
- data.favorite_color.Assign(value);
+void CoreData::SetFavoriteColor(FavoriteColor value) {
+ data.favorite_color.Assign(static_cast<u32>(value));
}
void CoreData::SetGender(Gender value) {
- data.gender.Assign(value);
+ data.gender.Assign(static_cast<u32>(value));
}
void CoreData::SetHeight(u8 value) {
@@ -222,40 +218,40 @@ void CoreData::SetRegionMove(u8 value) {
data.region_move.Assign(value);
}
-void CoreData::SetFacelineType(u8 value) {
- data.faceline_type.Assign(value);
+void CoreData::SetFacelineType(FacelineType value) {
+ data.faceline_type.Assign(static_cast<u32>(value));
}
-void CoreData::SetFacelineColor(u8 value) {
- data.faceline_color.Assign(value);
+void CoreData::SetFacelineColor(FacelineColor value) {
+ data.faceline_color.Assign(static_cast<u32>(value));
}
-void CoreData::SetFacelineWrinkle(u8 value) {
- data.faceline_wrinkle.Assign(value);
+void CoreData::SetFacelineWrinkle(FacelineWrinkle value) {
+ data.faceline_wrinkle.Assign(static_cast<u32>(value));
}
-void CoreData::SetFacelineMake(u8 value) {
- data.faceline_makeup.Assign(value);
+void CoreData::SetFacelineMake(FacelineMake value) {
+ data.faceline_makeup.Assign(static_cast<u32>(value));
}
-void CoreData::SetHairType(u8 value) {
- data.hair_type.Assign(value);
+void CoreData::SetHairType(HairType value) {
+ data.hair_type.Assign(static_cast<u32>(value));
}
-void CoreData::SetHairColor(u8 value) {
- data.hair_color.Assign(value);
+void CoreData::SetHairColor(CommonColor value) {
+ data.hair_color.Assign(static_cast<u32>(value));
}
void CoreData::SetHairFlip(HairFlip value) {
- data.hair_flip.Assign(value);
+ data.hair_flip.Assign(static_cast<u32>(value));
}
-void CoreData::SetEyeType(u8 value) {
- data.eye_type.Assign(value);
+void CoreData::SetEyeType(EyeType value) {
+ data.eye_type.Assign(static_cast<u32>(value));
}
-void CoreData::SetEyeColor(u8 value) {
- data.eye_color.Assign(value);
+void CoreData::SetEyeColor(CommonColor value) {
+ data.eye_color.Assign(static_cast<u32>(value));
}
void CoreData::SetEyeScale(u8 value) {
@@ -278,12 +274,12 @@ void CoreData::SetEyeY(u8 value) {
data.eye_y.Assign(value);
}
-void CoreData::SetEyebrowType(u8 value) {
- data.eyebrow_type.Assign(value);
+void CoreData::SetEyebrowType(EyebrowType value) {
+ data.eyebrow_type.Assign(static_cast<u32>(value));
}
-void CoreData::SetEyebrowColor(u8 value) {
- data.eyebrow_color.Assign(value);
+void CoreData::SetEyebrowColor(CommonColor value) {
+ data.eyebrow_color.Assign(static_cast<u32>(value));
}
void CoreData::SetEyebrowScale(u8 value) {
@@ -306,8 +302,8 @@ void CoreData::SetEyebrowY(u8 value) {
data.eyebrow_y.Assign(value);
}
-void CoreData::SetNoseType(u8 value) {
- data.nose_type.Assign(value);
+void CoreData::SetNoseType(NoseType value) {
+ data.nose_type.Assign(static_cast<u32>(value));
}
void CoreData::SetNoseScale(u8 value) {
@@ -322,8 +318,8 @@ void CoreData::SetMouthType(u8 value) {
data.mouth_type.Assign(value);
}
-void CoreData::SetMouthColor(u8 value) {
- data.mouth_color.Assign(value);
+void CoreData::SetMouthColor(CommonColor value) {
+ data.mouth_color.Assign(static_cast<u32>(value));
}
void CoreData::SetMouthScale(u8 value) {
@@ -338,16 +334,16 @@ void CoreData::SetMouthY(u8 value) {
data.mouth_y.Assign(value);
}
-void CoreData::SetBeardColor(u8 value) {
- data.beard_color.Assign(value);
+void CoreData::SetBeardColor(CommonColor value) {
+ data.beard_color.Assign(static_cast<u32>(value));
}
void CoreData::SetBeardType(BeardType value) {
- data.beard_type.Assign(value);
+ data.beard_type.Assign(static_cast<u32>(value));
}
void CoreData::SetMustacheType(MustacheType value) {
- data.mustache_type.Assign(value);
+ data.mustache_type.Assign(static_cast<u32>(value));
}
void CoreData::SetMustacheScale(u8 value) {
@@ -358,12 +354,12 @@ void CoreData::SetMustacheY(u8 value) {
data.mustache_y.Assign(value);
}
-void CoreData::SetGlassType(u8 value) {
- data.glasses_type.Assign(value);
+void CoreData::SetGlassType(GlassType value) {
+ data.glasses_type.Assign(static_cast<u32>(value));
}
-void CoreData::SetGlassColor(u8 value) {
- data.glasses_color.Assign(value);
+void CoreData::SetGlassColor(CommonColor value) {
+ data.glasses_color.Assign(static_cast<u32>(value));
}
void CoreData::SetGlassScale(u8 value) {
@@ -374,8 +370,8 @@ void CoreData::SetGlassY(u8 value) {
data.glasses_y.Assign(value);
}
-void CoreData::SetMoleType(u8 value) {
- data.mole_type.Assign(value);
+void CoreData::SetMoleType(MoleType value) {
+ data.mole_type.Assign(static_cast<u32>(value));
}
void CoreData::SetMoleScale(u8 value) {
@@ -394,16 +390,16 @@ void CoreData::SetNickname(Nickname nickname) {
name = nickname;
}
-u8 CoreData::GetFontRegion() const {
- return static_cast<u8>(data.font_region.Value());
+FontRegion CoreData::GetFontRegion() const {
+ return static_cast<FontRegion>(data.font_region.Value());
}
-u8 CoreData::GetFavoriteColor() const {
- return static_cast<u8>(data.favorite_color.Value());
+FavoriteColor CoreData::GetFavoriteColor() const {
+ return static_cast<FavoriteColor>(data.favorite_color.Value());
}
-u8 CoreData::GetGender() const {
- return static_cast<u8>(data.gender.Value());
+Gender CoreData::GetGender() const {
+ return static_cast<Gender>(data.gender.Value());
}
u8 CoreData::GetHeight() const {
@@ -422,40 +418,40 @@ u8 CoreData::GetRegionMove() const {
return static_cast<u8>(data.region_move.Value());
}
-u8 CoreData::GetFacelineType() const {
- return static_cast<u8>(data.faceline_type.Value());
+FacelineType CoreData::GetFacelineType() const {
+ return static_cast<FacelineType>(data.faceline_type.Value());
}
-u8 CoreData::GetFacelineColor() const {
- return static_cast<u8>(data.faceline_color.Value());
+FacelineColor CoreData::GetFacelineColor() const {
+ return static_cast<FacelineColor>(data.faceline_color.Value());
}
-u8 CoreData::GetFacelineWrinkle() const {
- return static_cast<u8>(data.faceline_wrinkle.Value());
+FacelineWrinkle CoreData::GetFacelineWrinkle() const {
+ return static_cast<FacelineWrinkle>(data.faceline_wrinkle.Value());
}
-u8 CoreData::GetFacelineMake() const {
- return static_cast<u8>(data.faceline_makeup.Value());
+FacelineMake CoreData::GetFacelineMake() const {
+ return static_cast<FacelineMake>(data.faceline_makeup.Value());
}
-u8 CoreData::GetHairType() const {
- return static_cast<u8>(data.hair_type.Value());
+HairType CoreData::GetHairType() const {
+ return static_cast<HairType>(data.hair_type.Value());
}
-u8 CoreData::GetHairColor() const {
- return static_cast<u8>(data.hair_color.Value());
+CommonColor CoreData::GetHairColor() const {
+ return static_cast<CommonColor>(data.hair_color.Value());
}
-u8 CoreData::GetHairFlip() const {
- return static_cast<u8>(data.hair_flip.Value());
+HairFlip CoreData::GetHairFlip() const {
+ return static_cast<HairFlip>(data.hair_flip.Value());
}
-u8 CoreData::GetEyeType() const {
- return static_cast<u8>(data.eye_type.Value());
+EyeType CoreData::GetEyeType() const {
+ return static_cast<EyeType>(data.eye_type.Value());
}
-u8 CoreData::GetEyeColor() const {
- return static_cast<u8>(data.eye_color.Value());
+CommonColor CoreData::GetEyeColor() const {
+ return static_cast<CommonColor>(data.eye_color.Value());
}
u8 CoreData::GetEyeScale() const {
@@ -478,12 +474,12 @@ u8 CoreData::GetEyeY() const {
return static_cast<u8>(data.eye_y.Value());
}
-u8 CoreData::GetEyebrowType() const {
- return static_cast<u8>(data.eyebrow_type.Value());
+EyebrowType CoreData::GetEyebrowType() const {
+ return static_cast<EyebrowType>(data.eyebrow_type.Value());
}
-u8 CoreData::GetEyebrowColor() const {
- return static_cast<u8>(data.eyebrow_color.Value());
+CommonColor CoreData::GetEyebrowColor() const {
+ return static_cast<CommonColor>(data.eyebrow_color.Value());
}
u8 CoreData::GetEyebrowScale() const {
@@ -506,8 +502,8 @@ u8 CoreData::GetEyebrowY() const {
return static_cast<u8>(data.eyebrow_y.Value());
}
-u8 CoreData::GetNoseType() const {
- return static_cast<u8>(data.nose_type.Value());
+NoseType CoreData::GetNoseType() const {
+ return static_cast<NoseType>(data.nose_type.Value());
}
u8 CoreData::GetNoseScale() const {
@@ -518,12 +514,12 @@ u8 CoreData::GetNoseY() const {
return static_cast<u8>(data.nose_y.Value());
}
-u8 CoreData::GetMouthType() const {
- return static_cast<u8>(data.mouth_type.Value());
+MouthType CoreData::GetMouthType() const {
+ return static_cast<MouthType>(data.mouth_type.Value());
}
-u8 CoreData::GetMouthColor() const {
- return static_cast<u8>(data.mouth_color.Value());
+CommonColor CoreData::GetMouthColor() const {
+ return static_cast<CommonColor>(data.mouth_color.Value());
}
u8 CoreData::GetMouthScale() const {
@@ -538,16 +534,16 @@ u8 CoreData::GetMouthY() const {
return static_cast<u8>(data.mouth_y.Value());
}
-u8 CoreData::GetBeardColor() const {
- return static_cast<u8>(data.beard_color.Value());
+CommonColor CoreData::GetBeardColor() const {
+ return static_cast<CommonColor>(data.beard_color.Value());
}
-u8 CoreData::GetBeardType() const {
- return static_cast<u8>(data.beard_type.Value());
+BeardType CoreData::GetBeardType() const {
+ return static_cast<BeardType>(data.beard_type.Value());
}
-u8 CoreData::GetMustacheType() const {
- return static_cast<u8>(data.mustache_type.Value());
+MustacheType CoreData::GetMustacheType() const {
+ return static_cast<MustacheType>(data.mustache_type.Value());
}
u8 CoreData::GetMustacheScale() const {
@@ -558,12 +554,12 @@ u8 CoreData::GetMustacheY() const {
return static_cast<u8>(data.mustache_y.Value());
}
-u8 CoreData::GetGlassType() const {
- return static_cast<u8>(data.glasses_type.Value());
+GlassType CoreData::GetGlassType() const {
+ return static_cast<GlassType>(data.glasses_type.Value());
}
-u8 CoreData::GetGlassColor() const {
- return static_cast<u8>(data.glasses_color.Value());
+CommonColor CoreData::GetGlassColor() const {
+ return static_cast<CommonColor>(data.glasses_color.Value());
}
u8 CoreData::GetGlassScale() const {
@@ -574,8 +570,8 @@ u8 CoreData::GetGlassY() const {
return static_cast<u8>(data.glasses_y.Value());
}
-u8 CoreData::GetMoleType() const {
- return static_cast<u8>(data.mole_type.Value());
+MoleType CoreData::GetMoleType() const {
+ return static_cast<MoleType>(data.mole_type.Value());
}
u8 CoreData::GetMoleScale() const {
@@ -599,7 +595,7 @@ Nickname CoreData::GetDefaultNickname() const {
}
Nickname CoreData::GetInvalidNickname() const {
- return {u'?', u'?', u' ', u'?'};
+ return {u'?', u'?', u'?'};
}
} // namespace Service::Mii